1. Field of the Invention
This invention generally relates to color rendering and, more particularly, to a method for preprocessing out-of-gamut colors prior to clipping.
2. Description of the Related Art
FIG. 1 is a two-dimensional projection depicting three-dimensional color gamuts (prior art). The overall horseshoe shape is a projection of the entire range of possible chromaticities. That is, the projection represents an outer boundary of the range, or gamut, of all colors perceivable by the human visual system. The triangle and its interior represents the visual color gamut producible by a typical computer monitor, which creates color by additively mixing various amounts of red, green, and blue lights, where the intensities of these lights are controlled by red/green/blue (RGB) device signals. The monitor gamut does not fill the entire visual color space. The corners of the triangle are the primary colors for this monitor gamut. In the case of a cathode ray tube (CRT), they depend on the colors of the phosphors of the monitor. The oval shape drawn with dotted lines represents the gamut producible by a device such as a color printer that is controlled by cyan/magenta/yellow (CMY) or cyan/magenta/yellow/black (CMYK) device signals. In the case of a printer, the colors actually produced in response to these signals are dependent upon the colorant properties, the colorant application processes, the viewing illumination, and the print media. For a color output device, its gamut is a certain complete subset of colors that can be accurately represented by the device. The gamut conceptually consists of the set of human-perceivable colors produced by driving the device with all valid combinations of device signals.
Human-perceivable colors that cannot be produced by some particular color output device are said to be out-of-gamut for that device. For example, the pure red of a particular type of CRT or LCD monitor, produced by setting the RGB device signals to (R=max, G=0, B=0) may be out-of-gamut for of a particular type of printer, which may be controlled via CMYK device signals. The converse is also possible. That is, a printer might be able to produce some colors which a monitor cannot produce. While processing a digital image, the most convenient color model used is the RGB model. In practice, the human-perceivable color associated with each image RGB value is often (tacitly or explicitly) assumed to be the color produced by the user's display monitor, or the color obtained by applying formulae of a standardized specification such as sRGB. However, the printing of such an image typically requires transforming the image from its original RGB color space to a printer's CMYK color space.
The gamut of the CMYK printer would, ideally, be the same as the RGB monitor, with slightly different apexes, depending on both the exact properties of the printing substrate (such as paper), the printer's colorants (dyes or pigments, applied via inks, toners or the like), any halftoning or screening applied prior to physical marking of the media, and the light source under which the printed material is viewed. In practice however, due to the way the colorant layers interact with each other and with the substrate, and due to their non-ideal absorption spectra, the projection of the printer gamut is smaller and has rounded corners, as compared to the triangular projection of the monitor gamut. Alternately stated, when a CMYK printer gamut is overlaid on an RGB monitor gamut, the printer primary CMY colors typically fall outside of the RGB monitor gamut. In the lightness dimension (not shown in FIG. 1), the printer primary (CMY) and secondary (RGB) colors are usually darker than the corresponding RGB monitor secondary (CMY) and primary (RGB) colors.
Since the overlap of the RGB-monitor and CMYK-printer gamuts is imperfect, as conceptually depicted in FIG. 1, some colors in the image (i.e., colors within the RGB-monitor gamut) may need to be converted to different colors within the CMYK printer gamut, a process known in the art as gamut mapping. There are several algorithms in the art approximating this transformation, but all involve some compromise, since those colors are simply outside of the target device's capabilities. What is acceptable is dictated by the limitations of human perception.
A gamut mapping step is almost always necessary in a color reproduction process or pipeline. Gamut mapping methods can be subdivided into clipping techniques, vs. other techniques such as compression, companding, and the like. By definition, gamut clipping comprises deriving, from any given color point located outside the output device gamut, a corresponding color point on the gamut surface (not a point strictly interior to the gamut). This mapping is many to one. Generally, a multitude of out-of-gamut points—often, points lying along a continuous curve outside the gamut—result in the same clipped surface point.
FIGS. 2A and 2B are diagrams depicting exemplary clipping processes (prior art). In these diagrams a color is represented in two-dimensional (2D) color space defined by exemplary attributes “a” and “b”. For example, attributes “a” and “b” may be hue and lightness. As another example, in Commission Internationale de l'Eclairage (CIE) 1976 (L*, a*, b*) color space (abbreviated CIELAB), the “a” and “b” attributes may represent visual opponent responses along a visual red-green axis (CIE a*) and a visual yellow-blue axis (CIE b*), respectively. In FIG. 2A, the out-of-gamut color (point X) is simply clipped to the gamut surface along a line passing through point X and the origin of the (a, b) plane, resulting in clipped point Y. With this interpretation of “a” and “b,” in FIG. 2B, the color at point X is initially moved—via an angular shift or rotation about the origin of the (a, b) plane—to point X′ before it is clipped. In the CIELAB space, this angular rotation corresponds to a visual hue shift. The hue-shifting operation may be performed on the basis of predetermined user-specified aesthetic preferences.
The key difference between FIG. 2B and FIG. 2A is the hue shift. In FIG. 2B, every point on the line between X and Y is hue-shifted by the same amount, with X being shifted to X′, Z to Z′, and Y to Y′. Then, every point on the line X′Y′ is clipped to a single point—Y′. This hue-shifting operation creates a problem in the treatment of colors near the gamut boundary. The classic definition of the gamut clipping algorithm specifies that in-gamut colors (colors on the line between the origin and Y) are not changed. However, the hue shift on the gamut boundary from Y to Y′ creates a discontinuity in the color mapping. The colors close to Y and in-gamut are not hue-shifted, but those colors close to Y and out-of-gamut are shifted to points close to Y′.
There is an extremely wide variety of methods by which gamut clipping is carried out in the prior art. Any given clipping algorithm is necessarily tied to the specifics of the modeling approach, and the associated data structures used in representing the surface of the output device gamut. A large collection of these methods are categorized as ‘constant-hue’ gamut clipping, wherein the gamut is modeled in a cylindrical space, such as a hue-lightness-chroma space, and each out-of-gamut color is projected to some point on the gamut surface at the same hue angle as the initial color. One such method is detailed in the parent application entitled, METHODS AND SYSTEMS FOR COLOR GAMUT ADJUSTMENT, invented by Dalrymple et al., Ser. No. 11/053,370, filed Feb. 8, 2005, which is incorporated herein by reference.
A color-rendering process comprises the creation of a mapping that converts a desired color, as specified in a CIE device-independent color space, which models fundamental aspects of the color response of the human visual system, into a device signal vector, which controls the color produced by a color output device. In practice, this mapping is often embodied as a multidimensional lookup table, such as one within a ‘B2A tag’ within an ICC (International Color Consortium) profile. In that case, a color-rendering process is carried out at each point in the multidimensional table, and the color-rendering process becomes part of a color-profile generation process.
A color space may be defined by a number of characteristics or attributes. For example, the gamut of a device may be specified by hue, saturation, or brightness. Thus, a full color gamut must be represented in three dimensions (3D) of attributes. When a device signal vector is presented to an output device, the device produces a CIE color. CIE colors can be denoted by XYZ tristimulus coordinates, or by derived coordinates such as L*a*b* or the like. For example, electrophotographic (EP) color printers use CMYK colorants to produce color, and the device signal vectors are 4-tuples consisting of C, M, Y, K percentage amounts. Allowing these percentages to independently vary through their entire physical range (or within a ‘valid’ range, considering process limitations) results in a set of colors in CIE color space filling a volume called the color gamut of the device. EP devices in particular have a relatively small color gamut, compared to other devices such as inkjet or dye-sublimation printers, or compared to displays such as CRTs or LCDs.
In some situations, a desired CIE color intended to be reproduced on an output device or medium can be simply characterized as directly-measured relative colorimetry produced by a source device (such as a display), or alternatively as measured colorimetry of physical samples such as ones in a PANTONE® or similar swatch book or on a press sheet. These are all examples of a ‘relative calorimetric’ style of color reproduction—one of the standard ICC styles. Even with this straightforward definition, many such colors fall outside the output device gamut and must be clipped to the gamut surface.
In other cases, the source colorimetry is first deliberately modified to create the desired CIE color that is intended to be reproduced, see FIG. 2B. This is often done in providing ICC ‘perceptual’ or ‘saturation’ styles of color reproduction. Typically, a color reproduction designer performs such modifications for aesthetic or image-quality reasons.
Mapping software may separately provide the color-modification step as a ‘rendeuing transform’ that exposes many user-settable parameters for adjusting the rendering. The rendering transform adjusts the colorimetry associated with the points of the multidimensional lookup table which the software constructs.
Many settings of rendering transform parameters don't compress all colors of interest into the output gamut. Although details of the rendering transform are beyond the scope of this disclosure, it should be noted that in many applications, it is a one-to-one mapping. Hence, the software may also provide a separate clipping step at the end of the process, which restricts the source colors or rendered source colors to the set of colors producible by the output device.
After out-of-gamut colors have been clipped, the device signals required to produce the resulting clipped colors can be determined by many conventional methods, e.g., by inverting a signal-to-color model of the device on the fly, or by accessing a pre-computed inverse model. Alternatively, the gamut clipping operation itself can include steps for computing a device signal that produces the clipped color, by reference to a gamut surface model.
It would be advantageous if user-specified treatments for out-of-gamut colors could be incorporated into a gamut mapping clipping process.
It would be advantageous if a weighting operation could be applied to user-specified treatments of out-of-gamut colors incorporated into a gamut mapping clipping process, to address the discontinuity issues mentioned above in the discussion of FIG. 2B.